home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2004 April / Gamestar_61_2004-04_dvdb.iso / DVDStar / Editace / hltp.exe / {app} / Applications / QuArK / quarkpy / mdloptions.py < prev    next >
Text File  |  2004-01-05  |  3KB  |  107 lines

  1. """   QuArK  -  Quake Army Knife
  2.  
  3. Implementation of QuArK Model editor's "Options" menu
  4. """
  5. #
  6. # Copyright (C) 1996-99 Armin Rigo
  7. # THIS FILE IS PROTECTED BY THE GNU GENERAL PUBLIC LICENCE
  8. # FOUND IN FILE "COPYING.TXT"
  9. #
  10.  
  11. #$Header: /cvsroot/quark/runtime/quarkpy/mdloptions.py,v 1.3 2003/12/17 13:58:59 peter-b Exp $
  12.  
  13.  
  14.  
  15. import quarkx
  16. from qdictionnary import Strings
  17. from mdlutils import *
  18. import qmenu
  19.  
  20.  
  21.  
  22. def ToggleOption(item):
  23.     "Toggle an option in the setup."
  24.     tag = item.tog
  25.     setup = apply(quarkx.setupsubset, item.sset)
  26.     newvalue = not setup[tag]
  27.     setup[tag] = "1"[:newvalue]
  28.     if item.sendupdate[newvalue]:
  29.         quarkx.reloadsetup()
  30.  
  31.  
  32. def Config1Click(item):
  33.     "Configuration Dialog Box."
  34.     quarkx.openconfigdlg()
  35.  
  36. def Plugins1Click(item):
  37.     "Lists the loaded plug-ins."
  38.     import plugins
  39.     group = quarkx.newobj("Loaded Plug-ins:config")
  40.     for p in plugins.LoadedPlugins:
  41.         txt = p.__name__.split(".")[-1]
  42.         ci = quarkx.newobj("%s.toolbar" % txt)
  43.         try:
  44.             info = p.Info
  45.         except:
  46.             info = {}
  47.         for spec, arg in info.items():
  48.             ci[spec] = arg
  49.         ci["File"] = p.__name__
  50.         ci["Form"] = "PluginInfo"
  51.         try:
  52.             ci.shortname = info["plug-in"]
  53.         except:
  54.             pass
  55.         group.appenditem(ci)
  56.     quarkx.openconfigdlg("List of Plug-ins", group)
  57.     
  58.  
  59. def Options1Click(menu):
  60.     for item in menu.items:
  61.         try:
  62.             setup = apply(quarkx.setupsubset, item.sset)
  63.             item.state = not (not setup[item.tog]) and qmenu.checked
  64.         except:
  65.             pass
  66.  
  67. def toggleitem(txt, toggle, sendupdate=(1,1), sset=(SS_MODEL,"Options")):
  68.     item = qmenu.item(txt, ToggleOption)
  69.     item.tog = toggle
  70.     item.sset = sset
  71.     item.sendupdate = sendupdate
  72.     return item
  73.  
  74.  
  75. #
  76. # Global variables to update from plug-ins.
  77. #
  78.  
  79. items = [
  80.     toggleitem("&Paste objects at screen center", "Recenter", (0,0)),
  81.     ]
  82. shortcuts = { }
  83.  
  84.  
  85. def OptionsMenu():
  86.     "The Options menu, with its shortcuts."
  87.  
  88.     PlugIns = qmenu.item("List of Plug-ins...", Plugins1Click)
  89.     Config1 = qmenu.item("Confi&guration...", Config1Click)
  90.     Options1 = qmenu.popup("&Options", items+[qmenu.sep, PlugIns, Config1], Options1Click)
  91.     return Options1, shortcuts
  92.  
  93. # ----------- REVISION HISTORY ------------
  94. #
  95. #
  96. #$Log: mdloptions.py,v $
  97. #Revision 1.3  2003/12/17 13:58:59  peter-b
  98. #- Rewrote defines for setting Python version
  99. #- Removed back-compatibility with Python 1.5
  100. #- Removed reliance on external string library from Python scripts
  101. #
  102. #Revision 1.2  2000/06/02 16:00:22  alexander
  103. #added cvs headers
  104. #
  105. #
  106. #
  107.